1. Field of the Invention
The present invention relates to techniques for interacting with objects in a user interface. More specifically, the present invention relates to a method and apparatus that facilitates disengaging sub-objects from an object within a user interface.
2. Related Art
Advances in semiconductor technology have led to the development of more powerful graphics co-processors. These more powerful graphics co-processors provide advanced graphics capabilities that can quickly render complex two-dimensional (2D) and three-dimensional (3D) objects. By taking advantage of these advanced graphics capabilities, a rich user interface (UI) can be developed. For example, some existing UIs use 3D-rendering techniques to present objects in 3D. In these UIs, objects such as windows or icons can be rotated in three dimensions to make room for other objects being displayed in the UI. Another example involves using 3D-animation effects, such as rotating an icon about one of its axes, to indicate that an application associated with the icon requires attention from the user.
3D objects are often represented by scene graphs. A scene graph typically comprises a tree data structure which is used to represent a set of graphical objects. Scene graphs are often used in 2D-rendering systems, but are becoming more popular in advanced 3D-rendering systems.
Moreover, scene graphs provide a mechanism to represent a hierarchy of sub-objects, which are grouped together to form composite objects. For example, a car object can be composed of a frame, doors, hubs, tires, and lug nuts. Similarly a tire, a hub, and lug nuts can be grouped together to form a wheel object. These scene graphs are described in more detail below.
One problem with existing UIs that manipulate hierarchies of graphical objects is the ambiguity that arises when a user places a cursor on top of an object that contains multiple sub-objects. In this case, the user may be expressing a desire to select one of many sub-objects or group of sub-objects for the object. For example, consider a model for a car. If the user places the cursor over one of the tires, it can mean the user wants to select: (1) the entire car, (2) the tire, (3) the hub, or (4) the exact lug nut to which the cursor is pointing on the tire.
3D-modeling applications typically provide a mechanism that allows the user to select a sub-object or a group of sub-objects. For example, sub-objects or a group of sub-objects can be selected by using a combination of keyboard and mouse operations. (Note that selecting the specified sub-object or a group of sub-objects in the UI implicitly involves selecting a sub-tree of the scene graph that corresponds to the sub-object or the group of sub-objects.) However, performing such a combination of keyboard and mouse operations is burdensome.
Hence, what is needed is a method and an apparatus for interacting with a user interface without the problems described above.